{% macro pagination_show(pagination,endpoint) %}{# 定义宏，格式是macro跟宏名跟参数名。类似封装函数。第一个参数是分页对象，第二个参数是点击页码时构造跳转链接的视图函数 #}
    <nav aria-label="Page navigation"><!--粘贴的https://v3.bootcss.com/components/#pagination，添加了没有上/下一页时按钮的class="disabled"，添加了显示当前页时页码按钮的class="active"，添加的class在bootstrap链接里都有介绍-->
        <ul class="pagination">
            {# 上一页按钮 #}
            <li {% if not pagination.has_prev %} class="disabled" {% endif %}><!--如果当前页没有上一页，则禁用上一页按钮-->
                <a href="{% if pagination.has_prev %}{{ url_for(endpoint,page=pagination.prev_num,**kwargs) }}{% else %}#{% endif %}" aria-label="Previous">
                    <span aria-hidden="true">&laquo;</span>
                </a>
            </li>
            {# 中间的页码按钮 #}
            {% for p in pagination.iter_pages() %}{# iter_pages()中存储了所有页码，即分页导航条中显示的1 2 3 4 5 6等那一行页码 #}
                {% if p %}
                    <li {% if p==pagination.page %} class="active" {% endif %}><a href="{% if p==pagination.page %}#{% else %}{{ url_for(endpoint,page=p,**kwargs) }}{% endif %}">{{ p }}</a></li><!--如果页码按钮是当前页的按钮，点击时跳转到#(即不跳转)，否则跳转到指定页-->
                {% else %}{# p显示不完时会返回None #}
                    <li><a href="#">&hellip;</a></li><!--把None设置成显示为...，如1 2 3 4 5 6 ... 10 11 12-->
                {% endif %}
            {% endfor %}
            {# 下一页按钮 #}
            <li {% if not pagination.has_next %} class="disabled" {% endif %}><!--如果当前页没有下一页，则禁用下一页按钮-->
                <a href="{% if pagination.has_next %}{{ url_for(endpoint,page=pagination.next_num,**kwargs) }}{% else %}#{% endif %}" aria-label="Next">
                    <span aria-hidden="true">&raquo;</span>
                </a>
            </li>
        </ul>
    </nav>
{% endmacro %}